﻿using System;
using YaAppoint.ApplyDepartments;
using YaAppoint.Appointments;
using YaAppoint.DeviceTypes;
using YaAppoint.ExamItems;

namespace YaAppoint.ExamAppies
{
    public class ExamApplicationDto
    {
        public Guid? Id { get; set; }

        /// <summary>
        /// 预约ID
        /// </summary>
        public  Guid? AppointmentId { get; set; }

        /// <summary>
        /// 预约信息
        /// </summary>
        public  string? AppointmentInfo { get; set; }


        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 患者ID
        /// </summary>
        public  string PatientId { get; set; }

        /// <summary>
        /// 患者性别
        /// </summary>
        public  PatientSex Sex { get; set; }

        /// <summary>
        /// 出生日期
        /// </summary>
        public  DateTime? BirthDate { get; set; }

        /// <summary>
        /// 父母姓名
        /// </summary>
        public  string? ParentName { get; set; }

        /// <summary>
        /// 证件类型编码
        /// </summary>
        public  string? IdCardTypeCode { get; set; }

        /// <summary>
        /// 证件类型
        /// </summary>
        public  string? IdCardType { get; set; }

        /// <summary>
        /// 证件号码
        /// </summary>
        public  string IdCardNumber { get; set; }

        /// <summary>
        /// 医保卡类型编码
        /// </summary>
        public  string? MedicalInsuranceTypeCode { get; set; }

        /// <summary>
        /// 医保卡类型
        /// </summary>
        public  string? MedicalInsuranceType { get; set; }

        /// <summary>
        /// 医保卡号
        /// </summary>
        public  string? MedicalInsuranceNumber { get; set; }

        /// <summary>
        /// 电子健康码
        /// </summary>
        public  string? ElectronicHealthCode { get; set; }

        /// <summary>
        /// 患者主索引
        /// </summary>
        public  string? PatientEMPI { get; set; }

        /// <summary>
        /// 区域患者索引
        /// </summary>
        public  string? GlobalEMPI { get; set; }

        /// <summary>
        /// 联系方式
        /// </summary>
        public  string? PhoneNumber { get; set; }

        /// <summary>
        /// 联系方式2
        /// </summary>
        public  string? PhoneNumber2 { get; set; }

        /// <summary>
        /// 家庭住址
        /// </summary>
        public  string? Address { get; set; }

        /// <summary>
        /// 民族编码
        /// </summary>
        public  string? EthnicGroupCode { get; set; }

        /// <summary>
        /// 民族
        /// </summary>
        public  string? EthnicGroup { get; set; }

        /// <summary>
        /// 就诊卡号
        /// </summary>
        public  string? MedicalCardNumber { get; set; }

        /// <summary>
        /// 申请单号
        /// </summary>
        public  string ApplyNumber { get; set; }

        /// <summary>
        /// 单据号
        /// </summary>
        public  string? BillNumber { get; set; }

        /// <summary>
        /// 发票号
        /// </summary>
        public  string? InvoiceNumber { get; set; }

        /// <summary>
        /// 门诊号
        /// </summary>
        public  string? OuterNumber { get; set; }

        /// <summary>
        /// 年龄值
        /// </summary>
        public  int AgeValue { get; set; }

        /// <summary>
        /// 年龄单位
        /// </summary>
        public  AgeUnit AgeUnit { get; set; }

        /// <summary>
        /// 年龄
        /// </summary>
        public string? Age { get; set; }

        /// <summary>
        /// 身高
        /// </summary>
        public  int? Height { get; set; }

        /// <summary>
        /// 体重
        /// </summary>
        public  int? Weight { get; set; }

        /// <summary>
        /// 患者来自编码
        /// </summary>
        public  string? PatientFromCode { get; set; }

        /// <summary>
        /// 患者来自
        /// </summary>
        public  string? PatientFrom { get; set; }

        /// <summary>
        /// 患者类型
        /// </summary>
        public  string? PatientTypeCode { get; set; }

        /// <summary>
        /// 患者类型
        /// </summary>
        public  string PatientType { get; set; }

        /// <summary>
        /// 病案号 
        /// </summary>
        public  string? MedicalRecordNumber { get; set; }

        /// <summary>
        /// 体检号
        /// </summary>
        public  string? PhysicalExamNumber { get; set; }

        /// <summary>
        /// 门诊号 
        /// </summary>
        public  string? OutPatientNumber { get; set; }

        /// <summary>
        /// 住院号
        /// </summary>
        public  string? InPatientNumber { get; set; }

        /// <summary>
        /// 病区
        /// </summary>
        public  string? InPatientArea { get; set; }

        /// <summary>
        /// 病房号
        /// </summary>
        public  string? WardNumber { get; set; }

        /// <summary>
        /// 床位号
        /// </summary>
        public  string? BedNumber { get; set; }

        /// <summary>
        /// 申请医生编码
        /// </summary>
        public  string ApplyDoctorCode { get; set; }

        /// <summary>
        /// 申请医生
        /// </summary>
        public  string ApplyDoctorName { get; set; }

        /// <summary>
        /// 申请科室编码
        /// </summary>
        public  string ApplyDepartmentCode { get; set; }

        /// <summary>
        /// 申请科室名称
        /// </summary>
        public  string ApplyDepartmentName { get; set; }



        /// <summary>
        /// 申请科室ID
        /// </summary>
        public  Guid ApplyDepartmentId { get; set; }

        /// <summary>
        /// 申请科室
        /// </summary>
        public  ApplyDepartmentDto? ApplyDepartment { get; set; }

        /// <summary>
        /// 申请时间
        /// </summary>
        public  DateTime ApplyTime { get; set; }

        /// <summary>
        /// 检查项目编号(详情Id)
        /// </summary>
        public  string ExamItemNumber { get; set; }

        /// <summary>
        /// 编码（检查项目外码） 
        /// </summary>
        public  string ExamItemCode { get; set; }

        /// <summary>
        /// 检查项目名称
        /// </summary>
        public  string ExamItemName { get; set; }

        /// <summary>
        /// 检查项目ID
        /// </summary>
        public  Guid ExamItemId { get; set; }

        /// <summary>
        /// 检查项目
        /// </summary>
        public  ExamItemDto ExamItem { get; set; }

        /// <summary>
        /// 工作量系数
        /// </summary>
        public  int WorkLoad { get; set; }

        /// <summary>
        /// 检查项目医保编码
        /// </summary>
        public  string? ExamItemInsuranceCode { get; set; }

        /// <summary>
        /// 检查项目费用
        /// </summary>
        public  float? ExamItemFee { get; set; }

        /// <summary>
        /// 检查项目状态
        /// </summary>
        public  string? ExamItemStatus { get; set; }

        /// <summary>
        /// 检查项目状态(枚举)
        /// </summary>
        public ApplyItemStatus Status { get; set; }

        /// <summary>
        /// 临床诊断
        /// </summary>
        public  string? ClinicalDiagnosis { get; set; }

        /// <summary>
        /// 现病史
        /// </summary>
        public  string? MedicalHistory { get; set; }

        /// <summary>
        /// 患者主诉
        /// </summary>
        public  string? ChiefComplaint { get; set; }

        /// <summary>
        /// 过敏史
        /// </summary>
        public  string? AllergyHistory { get; set; }

        /// <summary>
        /// 从事职业编码
        /// </summary>
        public  string? ProfessionCode { get; set; }

        /// <summary>
        /// 从事职业名称
        /// </summary>
        public  string? ProfessionName { get; set; }

        /// <summary>
        /// 婚姻状态编码
        /// </summary>
        public  string? MaritalStatusCode { get; set; }

        /// <summary>
        /// 婚姻状况名称
        /// </summary>
        public  string? MaritalStatusName { get; set; }

        /// <summary>
        /// 月经史
        /// </summary>
        public  string? MenstrualHistory { get; set; }

        /// <summary>
        /// 末次月经日期
        /// </summary>
        public  DateTime? LastMenstruationDate { get; set; }

        /// <summary>
        /// 末次月经日期Str
        /// </summary>
        public string? LastMenstruationDateStr { get; set; }

        /// <summary>
        /// 孕周
        /// </summary>
        public  string? GestationalWeek { get; set; }

        /// <summary>
        /// 预产期
        /// </summary>
        public  DateTime? ChildbirthDate { get; set; }

        /// <summary>
        /// 是否怀孕
        /// </summary>
        public  bool? IsPregnancy { get; set; }

        /// <summary>
        /// 急诊患者
        /// </summary>
        public  bool? IsEmergency { get; set; }

        /// <summary>
        /// 是否保密
        /// </summary>
        public  bool? IsPrivacy { get; set; }

        /// <summary>
        /// 是否缴费
        /// </summary>
        public  bool? IsPayment { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public  string? Remark { get; set; }

        /// <summary>
        /// 设备类型ID
        /// </summary>
        public  Guid DeviceTypeId { get; set; }

        /// <summary>
        /// 设备类型
        /// </summary>
        public  DeviceTypeDto DeviceType { get; set; }

        /// <summary>
        /// 设备类型编码
        /// </summary>
        public  string? DeviceTypeCode { get; set; }

        /// <summary>
        /// 检查部位
        /// </summary>
        public  string? ExamBodyPart { get; set; }
    }
}
